package com.hsmw.schedule.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hsmw.domain.HsmwConcreteOperate;
import com.hsmw.domain.HsmwConstructionPosition;
import com.hsmw.domain.HsmwDispatchOrderRemark;
import com.hsmw.domain.HsmwVolumeRecord;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.models.auth.In;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

@Data
public class HtnPumpOrderDetailVo implements Serializable {

    @ApiModelProperty(value = "订单id")
    private String orderId;

    @ApiModelProperty(value = "项目名称")
    private String itemName;

    @ApiModelProperty(value = "预计到达时间")
    private String reachTime;

    @ApiModelProperty("项目id")
    private String itemId;

    @ApiModelProperty(value = "施工单位名称")
    private String constructionUnitName;

    @ApiModelProperty("创建人id")
    private String createUserId;

    @ApiModelProperty("创建人名称")
    private String createName;

    @ApiModelProperty("创建人电话")
    private String createUsername;

    @ApiModelProperty("创建人用户权限类型")
    private String createUserRoleType;

    @ApiModelProperty("创建人用户类型")
    private String createUserType;

    @ApiModelProperty(value = "工长姓名")
    private String foremanName;

    @ApiModelProperty(value = "工长电话")
    private String foremanTel;

    @ApiModelProperty(value = "预计方量")
    private String expectVolume;

    @ApiModelProperty(value = "所需泵车数量")
    private Integer reqCount;

    @ApiModelProperty(value = "施工部位集合使用 ',' 分隔开")
    private String constructionPosition;

    @ApiModelProperty(value = "车辆类型")
    private String vehicleType;

    @ApiModelProperty(value = "车辆型号")
    private String vehicleModel;

    @ApiModelProperty(value = "距离位置")
    private Long distance;

    @ApiModelProperty(value = "项目经度")
    private String itemLng;

    @ApiModelProperty(value = "项目纬度")
    private String itemLat;

    @ApiModelProperty(value = "项目位置")
    private String itemPosition;

    @ApiModelProperty(value = "订单状态")
    private String orderStatus;

    @ApiModelProperty(value = "司机信息列表")
    private List<com.hsmw.domain.vo.DriverCountVO> driverCountVOS;


    @ApiModelProperty(value = "需求状态")
    private String requestStatus;


    @ApiModelProperty(value = "需求id")
    private String requestId;


    @ApiModelProperty(value = "子订单id")
    private String relationId;

    @ApiModelProperty(value = "车牌品牌")
    private String vehicleBrand;

    @ApiModelProperty(value = "车ID")
    private String vehicleId;

    @ApiModelProperty(value = "车牌号")
    private String vehiclePlate;

    @ApiModelProperty(value = "接单时间")
    private String acceptOrderTime;

    @ApiModelProperty(value = "出发时间")
    private String setoutTime;

    @ApiModelProperty(value = "签到时间")
    private String clockInTime;

    @ApiModelProperty(value = "结束时间")
    private String endTime;

    @ApiModelProperty(value = "司机方量")
    private String driverVolume;

    @ApiModelProperty(value = "操作类型 0 是司机取消 1 是混天凝app账户取消")
    private String operType;

    @ApiModelProperty(value = "操作时间")
    private String operTime;

    @ApiModelProperty(value = "结算状态 1。已冻结 2。已确认 3。已结算")
    private String settlementStatus;

    @ApiModelProperty(value = "结算金额")
    private BigDecimal settlementAmount;

    @ApiModelProperty(value = "订单备注")
    private String remark;

    @ApiModelProperty(value = "是否为外租泵车")
    private String outsideLeasingFlag;

    @ApiModelProperty(value = "是否为新派车辆")
    private String newVehicleFlag;

    @ApiModelProperty(value = "上报类型")
    private String reportType;

    @ApiModelProperty(value = "持续时间")
    private Long continueSeconds;

    @ApiModelProperty(value = "等待接单时间")
    private Long waitingSeconds;

    @ApiModelProperty(value = "可以取消的数量")
    private Integer avaliableCount;

    @ApiModelProperty(value = "施工部位List")
    private List<HsmwConstructionPosition> hsmwConstructionPositionList;

    @ApiModelProperty("车辆是否收藏")
    private Integer collectFlag;

    @ApiModelProperty(value = "修改时间标志")
    private boolean updateTimeFlag;

    @ApiModelProperty(value = "是否从混天凝叫车")
    private String ifSelfChoose;

    @ApiModelProperty(value = "开通平台叫泵的标志")
    private boolean openFlag;

    @ApiModelProperty(value = "指定车辆ID")
    private String appointVehicleId;

    @ApiModelProperty(value = "是否是指定车辆")
    private String appointOrder;


    @ApiModelProperty(value = "联系人ID")
    private String linkmanId;

    @ApiModelProperty(value = "联系人名称")
    private String linkmanName;

    @ApiModelProperty(value = "0 工长 1 项目负责人 2. 联系人")
    private String linkmanType;

    @ApiModelProperty(value = "联系人电话 ")
    private String linkmanTelephone;

    @ApiModelProperty(value = "搅拌站项目距离")
    private Double concretePlantDistance;

    @ApiModelProperty(value = "搅拌站ID")
    private String concretePlantId;

    @ApiModelProperty(value = "搅拌站名称")
    private String concretePlantName;

    @ApiModelProperty(value = "搅拌站累积方量")
    @TableField(exist = false)
    private Double sumVolume;

    @ApiModelProperty(value = "项目累积方量")
    @TableField(exist = false)
    private Double itemSumVolume;


    @ApiModelProperty(value = "搅拌站平面图")
    @TableField(exist = false)
    private String plantGraph;

    @ApiModelProperty(value = "搅拌站位置名称")
    @TableField(exist = false)
    private String concretePosition;


    @ApiModelProperty(value = "搅拌站联系人电话")
    private String concreteUsername;

    @ApiModelProperty(value = "混凝土订单状态")
    String concreteOrderStatus;

    @ApiModelProperty(value = "是否需要混凝土 0. 否 ; 1.是")
    private String ifConcreteRequired;

    @ApiModelProperty(value = "操作类型 0 下单人取消 1 是搅拌站取消")
    private String cancelType;

    @ApiModelProperty(value = "搅拌站确认方量")
    private String ensureVolume;

    @ApiModelProperty(value = "混凝土到达时间")
    private String concreteReachTime;

    @ApiModelProperty(value = "混凝土 操作记录")
    List<HsmwConcreteOperate> hsmwConcreteOperates;

    @ApiModelProperty(value = "1：泵车单 2. 混天凝订单")
    private String orderType;

    @ApiModelProperty(value = "调度备注信息")
    List<HsmwDispatchOrderRemark> dispatchOrderRemarks;

    @ApiModelProperty(value = "星级评价")
    private  Integer  starRating;



}

